home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu551.dms
/
pu551.adf
/
P-Compress
/
P-Compress.doc
< prev
next >
Wrap
Text File
|
1992-09-02
|
16KB
|
324 lines
PRE1
P - C O M P R E S S V2.9
INTRODUCTION
P-Compress is a compression/de-compression tool designed to meet the great
majority of the requirements of users efficiently and economically while
being very easy to use. It will compress single files, drawers or complete
disks, preserving disk and drawer structures. Individual files can be joined
into a single PACK, similar to an archive and by using PACKs two uncompressed
disks will normally fit on one. Drawers and disks can be copied from one
place to another, selected files or classes of files being compressed and the
remainder just copied. P-Compressed files, including sounds, pictures and
animations, can be displayed by P-Reader without prior decompression, and P-
Compressed texts can be loaded into and saved from P-Writer. The latest
version of P-Reader is being used to display this file.
Two important areas not covered at present are:
Hard-disk back-up. Use a specialised programme (eg BRU).
Self-extracting executables. Use Imploder from Fish 422.
One of the main uses of P-Compress may be to reduce the size of your own
personal library collection of utilities, data, games, code examples, stored
away for occasional reference. By just compressing all data, leaving icons
and executables untouched, and using P-Reader as the basic text reader and
display tool, my own "library" of 35 disks reduced to 25. Caution is needed
when doing this as data files used by the executables must be left unchanged.
Alternatively if the P-Suite utility P-Fixlib is to be used (which allows DOS
to treat compressed files as though they were uncompressed) the whole disk
can be compressed, doubling its capacity.
P-Compress employs the latest LZH compression technique using code by
Barthel and Krekel, modified to limit memory requirements.
This release also includes the small utility P-Unpack, whose sole purpose
in life is to unpack Packs. Details from line 229 on.
COMPARISON WITH ALTERNATIVE PROGRAMMES
Whole disk compression tools: eg LHWARP, Zoom.
When used to PACK a complete disk P-Compress only compresses the files on
the disk and not such additional data as boot-blocks. As a result output
will be smaller than that of true whole-disk tools. P-Unpack can write a
standard boot-block to the re-constituted disk. Speed is comparable but
memory usage much lower. If you really need to include everything on the
disk, Zoom is recommended.
Archivers: eg LHArc, PKAZip.
To suit their role in the maintenance of archives these include a host of
facilities which are of little or no use to most of us. As a result they are
not easy to use. One effect of the complexity is that with some combinations
of commands and switches files can be lost. (Tip: always use the extended
filenames switch). The P-Compress
PACK
option can be regarded as a very
simple archiver and is faster and uses less memory than LHArcA and much
faster than LHArc. PKAZip is very fast, efficiency usually poorer, memory
useage greatly excessive. The new Shrink sets a new standard in efficiency,
and although it uses a lot of memory and is a bit slow it competes with LHA
for the title of the best current archiver. Large archived collections of
files cannot be handled by single-drive Amigas without expansion memory
(unless a vast number of disk-swops are acceptable),
PACKS
can.
General compression tools: eg Power Packer
An excellent programme in its day the current PD version of PowerPacker is
completely outclassed by the new wave of LZH compression tools - although
decompression is fast. As far as ease of use is concerned users should form
their own judgement. PowerPacker has the ability to create self- extracting
executables which P-Compress does not do at present, however Imploder handles
this particular job better and more quickly.
This version checks any file presented for compression or decompression to
see if it has been compressed with PowerPacker. If so it is automatically
decompressed. Self-executing executables are excluded.
Some comparative performance figures are given at the end of this doc.
INSTRUCTIONS
P-Compress
opens a window on Workbench showing:
On the left Progress window.
Top right Decompress window.
Centre right Compress window.
Bottom right Execute window.
Color selection gadget can be found at the top of the lower right P-Compress
logo. Click it to cycle the available color palettes.
If you have the Arp library installed the programme will use the Arp File-
Requester, otherwise a simple string gadget requester will appear. If you
are using the latter to call a drawer the entry must end with a slash
/
.
P-Compress
can be started from the cli or by double-clicking its icon.
DECOMPRESSION
Click
From
. File requester will come
up over the progress window.
Enter or select the drawer, or
file to be de-compressed. Click
OK
(or
cancel
). Selected reference
will be shown in the From box.
#! 1 42 6 0 decompress.brush
Click
To
. File requester will re-appear. Enter/select a disk, file
or drawer as required. If an existing
file
other than a PACK is selected
but a drawer or disk was entered at From, a warning will appear. Otherwise
new files will be opened as necessary. A PACK can only be decompressed to a
disk or drawer - a file entered at
To
will be ignored and the programme
will look at its path to decide where to place the unpacked output.
Compressed files will be decompressed to the indicated location, uncompressed
files will be just copied. Name and size of the file being handled appears
in the progress window. On completion a summary will appear at the bottom of
the Decompress window (except where only a single file has been called).
The programme will recognise whether the input is a normal file or a PACK,
and will act accordingly. PACK in the execute window need not be switched on.
You can decompress back over the original - with the same reference entered
at
From
and
To
. Sufficient space must be available on the disk to take the
file currently being decompressed as well as the original (later deleted).
If you run out of disk space before decompression is complete you will be
asked to insert a new disk. On completion delete any empty drawers on the
disks and transfer icons where necessary. Note that when checking for space
no account is taken of whether an existing file is being overwritten. This
can mean that the request is made when not strictly needed. Collect the
extra file or files on another disk and copy back.
Before decompressing compressed files a checksum (CRC) is read and checked
- if an error is found an appropriate warning will be given and the
offending file passed over.
Before an existing file is overwritten you will be asked to OK it.
Clicking
OVERWRITE
in the execute window suspends this feature, which is
also suspended when a PACKed file is being decompressed. Click
GO
in the
execute window to start decompression,
CANCEL
to cancel the process, and
QUIT
to close down.
#! 1 42 3 0 compress.brush
COMPRESSION
Select
From
and
To
in turn as before
and enter or select the source and
destination references. Either a disk,
drawer or individual file may be
selected. If a disk or drawer is to be
compressed click on one or more of
the boxes listed below to indicate the
types of file to be compressed, the
remainder will just be copied. Copied files are not provided with Checksums.
DATA
"Project" type data files such as texts, IFF pics, animations etc.
ICONS
You may want to leave icons uncompressed.
EXEC
Libraries and all executables.
HEXEC
Executables are stripped of any debug or symbol hunks. In normal
operation these are not needed.
If you need to select specific individual files to be compressed or just
copied use
ASK
- the programme will halt at each file and ask for
instructions.
If
HEXEC
is selected the stripped file will be put into a temporary file
RAM:S
. If
EXEC
is also selected
RAM:S
will then be compressed to the final
destination, otherwise it will be just copied; the sizes of the original
file, RAM:S, and the final output will be shown.
Normally when compressing a file or drawer each file is transferred to an
equivalent place at the output location, new drawers being opened as needed,
so that the original structure of drawers and their contents is preserved.
Alternately a PACK can be created in which all the files are joined into one
compendium file or PACK. An individual checksum is provided for each of the
files contained. The name PACK will be appended to any filename that may be
inserted at
To
. On decompression the original structure is re-created.
HEXEC is not functional when compressing to a pack. Note that the PACK that
is to be created must be in a different drawer from that being packed (or a
different disk if a whole disk is being packed), otherwise P-Compress will
try to include the PACK within itself - and fail.
If you run out of disk space before compression is complete you will be
asked to insert a new disk (except where a PACK is being made - a file
cannot be split between two disks). (But see the comment in the decompress
section.)
Click
OVERWRITE
,
PACK
as necessary, and then
GO
to start compression.
Progress and final summary will be shown as before.
EXECUTION
Click
OVERWRITE
if existing files are to be overwritten.
CLICK
PACK
if you wish to put all the individual files into a single PACK.
Click
GO
to start compression or decompression,
CANCEL
to cancel the
process and
QUIT
to close down.
#! 1 42 5 0 exec.brush
Note that you may enter the same reference in
From
and
To
, allowing the
direct replacement of a file by its compressed (or decompressed) image. An
intermediate temporary file in RAM is used, which of course means that memory
consumption is increased. The original is not overwritten unless the
compression or decompression operation returns correctly, however for safety
's sake it is always better to have a backup.
COMPARISONS
Three files have been used:
File 1 is a HAM picture. Length 92872 bytes.
File 2 is an executable file. Length 28792 bytes.
File 3 was made up by joining a general mixture of texts, executables
and icons into a single large file. Length 608440 bytes.
Size Compress Decompress
File 1
LHArcA 51812 1min.08secs 33secs
PowerPacker (fastest) 64412 2min.37secs 17secs
PowerPacker (best) 54196 23mins.45secs 16secs
PKAZip 53407 45secs 21secs
P-Compress 52136 49secs 21secs
File 2
LHArcA 15788 26secs 11secs
PowerPacker (good) 17122 2min.11 9secs
PKAZip 15919 24secs 7secs
P-Compress 15816 17secs 8secs
File 3
LHArcA and PKAZip failed - out of memory.
PowerPacker not tried - out of patience.
P-Compress 287372 6m.28 1m.48
In all cases compression/decompression was from disk to RAM: using an Amiga
500 with 1M of memory.
P - U N P A C K V1.2
When sending out a disk containing a PACK you will normally include on the
disk the means of decoding it. This can of course be
P-Compress
itself, but
the considerably smaller
P-Unpack
may be used instead. The end result is
the same but
P-Unpack
provides two further advantages:
It provides the efficient disk-swopping facilities needed by single-disk
-drive Amigas with memory that is not sufficient for the whole pack to be
copied to and decompressed from ram.
By writing the icon with the ToolType "boot" the decompressed output disk
is made bootable. (Not functional for the single-floppy-drive user).
P-Unpack
is called as the Default Tool of a Project icon for a PACK file.
When the icon is clicked the PACK will be decompressed and the original
structure of files and drawers copied to a disk.
Preparation - Sender
The Pack should be created in the normal way with P-Compress. Prepare
a PROJECT Icon for the Pack, and write
P-Unpack
as the Default Tool. Include
a path (e.g
:c/P-Unpack
) if necessary. If the output disk is to be made
bootable write the single word
boot
into the Tool Types space. Include
P-Unpack
on the disk along with the Pack or Packs. It is a good idea to
name the pack "
CLICK-ME"
or incorporate "
click-me
" into the icon so that the
recipient knows what to do. The recipient should not need any other
instructions.
Use - Recipient
The recipient will boot the received disk normally and faced with an icon
that incorporates the instruction
Click-me
will double-click it. P-Unpack
will check the number of floppy drives connected.
If there is more than one floppy drive connected a requester will appear
asking the user to select one, insert an empty disk, and click go. Once
decompression is under way an
Abort
gadget is added. Clicking on this will
stop the programme on completion of the current file. If the pack includes
a disk icon, this will be adopted and seen if the disk is removed and
re-inserted. If the Tool Type
boot
was written into the icon the output disk
will be bootable. If the expanded PACK is larger than a single disk, a
notice will call for a new disk when the first is full.
Where P-Unpack finds only one floppy drive a different requester will
appear asking the user to insert the source disk and click go. Decompression
to RAM will continue for as long as memory is available and the user will
then be asked to insert the output disk - ram will be copied to this. Disk
swopping will continue until decompression is complete - four or five swops
may be needed. No early warning will be given of a full disk, but a new
disk can be inserted at any of the disk-swops. The output disk can not be
made bootable, otherwise the final result is the same.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A large Byte of thanks to Steve Bolton of South Australia whose comments
and suggestions have greatly improved this programme.
P-Compress and P-Unpack are Freeware. They may be copied and distributed
freely and used without charge for non_commercial purposes. Authority for
commercial use should be obtained from the author below.
No responsibility can be accepted for any loss occasioned by use of these
programmes.
Comments, suggestions, bug-reports all welcome.
Chas A. Wyndham,
1265 Canning Mills Road,
Roleystone,
WA 6111.
Australia